// 引入request请求库
let {request}=require('../../ajaxUtil/request')
// pages/goodsList/goodsList.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 传到tabs组件 需要渲染的结构数据
    tabs:[
      {text:'综合',target:'overall'},
      {text:'销量',target:'sale'},
      {text:'价格',target:'price'}
    ],
    // 传递给tabs组件的
    activeTab:'overall',
    // 定义一个goods数组，用来接收数据
    goods:[]
  },
  // 获取数据列表参数
  total:0,
  cid:'',
  pagenum:1,
  pagesize:20,
  query:'',
  // 处理tabs组件传过来的值，更改activeTab的值
  handleMytaps:function(target){
    // 把子组件tabs传递过来的激活项target赋值给activeTab
    this.setData({
      activeTab:target.detail
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad:async function (options) {
    console.log(options);
    // 设置一个params，用来传递参数
    let params={}
    // 如果在首页点击图片进来，就会携带query参数，把参数发送请求
    if(options.query){
      // 存到params，发送请求
      params.query=options.query
      // 存到我们自己定义的query中
      this.query=options.query
    }
    // 从商品分类页面 点击 进来，会携带cid参数，把参数发送请求
    if(options.cid){
      // 存到params，发送请求
      params.cid=options.cid
      // 存到我们自己定义的cid中
      this.cid=options.cid
    }
    // 添加pagenum、pagesize参数
    params.pagenum=this.pagenum
    params.pagesize=this.pagesize
    let res=await request({
      // 把其他页面进来的时候携带的参数 打散 放到data中 发送请求
      data:{...params},
      url:'goods/search'
    })
    console.log('页面进来时获取到的数据',res.message);
    // 把获取到的total、pagenum、goods数据进行赋值
    this.total=res.message.total
    this.pagenum=res.message.pagenum
    this.setData({
      goods:res.message.goods
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  // 获取商品列表
  getProductList:async function(){
        // a.1 定义一个params对象，存请求参数
        let params={}
        // a.2 发送请求    
        // a.2.1 添加请求参数 query
        if(this.query){
          params.query=this.query
        }
        // a.2.2 添加请求参数 cid
        if(this.cid){
          params.cid=this.cid
        }
        // a.2.3 添加pagenum参数
        params.pagenum=this.pagenum
        // a.2.4 添加pagesize参数
        params.pagesize=this.pagesize
        // a.2.5 发送请求
        let res=await request({
          data:{...params},
          url:'goods/search'
        })
        console.log('下拉刷新的res',res);
        // 把获取到的数据，赋值到我们定义的变量中
        this.pagenum=res.message.pagenum
        this.total=res.message.total
        // 把获取到的数据列表，更新
        this.setData({
          goods:res.message.goods
        })
        // 停止下拉
        wx.stopPullDownRefresh()
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh:async function () {
    // a.1 清空goods列表:可加可不加
    // this.setData({
    //   goods:[]
    // })
    // 调用获取用户列表函数
    this.getProductList()
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom:async function () {
    // a.1 pagenum+1
    // a.1.1 如果+1之后是小于等于total/pagesize的话，就可以加1
    
    let addPageNum=parseInt(this.pagenum)+1<=Math.ceil(this.total/this.pagesize)
    if(addPageNum){
      // a.2 先自增1
      this.pagenum=parseInt(this.pagenum)+1
      // a.3 定义一个params对象，存请求参数
      let params={}
      // a.4 发送请求    
      // a.4.1 添加请求参数 query
      if(this.query){
        params.query=this.query
      }
      // a.4.2 添加请求参数 cid
      if(this.cid){
        params.cid=this.cid
      }
      // a.4.3 添加pagenum参数
      params.pagenum=this.pagenum
      // a.4.4 添加pagesize参数
      params.pagesize=this.pagesize
      // a.4.5 发送请求
      let res=await request({
        data:{...params},
        url:'goods/search'
      })
      console.log('下拉刷新的res',res);
      // 把获取到的数据，赋值到我们定义的变量中
      this.pagenum=res.message.pagenum
      this.total=res.message.total
      // 把获取到的数据列表，更新
      this.setData({
        // 因为新获取到的数据，要加到现有的，所以采用打散
        goods:[
          ...this.data.goods,
          ...res.message.goods
        ]
      })
    }else{
      // a.1.2 如果+1之后大于total/pagesize，显示最后一页了
      wx.showToast({
        title:'已经是最后一页了',
        icon:'error'
      })
    }


  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})